package com.ruoyi.project.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.FinBaseEntity;
import com.ruoyi.common.domainenum.FinPackageStatus;
import com.ruoyi.common.domainenum.FinRuleType;
import com.ruoyi.common.domainenum.FinTaxType;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 账套对象 fin_package
 * 
 * @author abel
 * @date 2024-10-12
 */
public class FinPackage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 启用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @Excel(name = "启用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 当前会计年度
     */
    private Integer currentYear;
    /**
     * 当前会计月份（期间）
     */
    private Integer currentMonth;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 状态 */
    @Excel(name = "状态")
    private FinPackageStatus status;

    /** 会计准则 */
    @Excel(name = "会计准则")
    private FinRuleType ruleType;

    /** 纳税性质 */
    @Excel(name = "纳税性质")
    private FinTaxType taxType;

    /** 是否审核凭证 */
    @Excel(name = "是否审核凭证")
    private Boolean hasCheckVoucher;

    /** 创建者ID */
    @Excel(name = "创建者ID")
    private Long createId;

    /** 更新者ID */
    @Excel(name = "更新者ID")
    private Long updateId;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Integer getCurrentYear() {
        return currentYear;
    }

    public void setCurrentYear(Integer currentYear) {
        this.currentYear = currentYear;
    }

    public Integer getCurrentMonth() {
        return currentMonth;
    }

    public void setCurrentMonth(Integer currentMonth) {
        this.currentMonth = currentMonth;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getUpdateId() {
        return updateId;
    }

    public void setUpdateId(Long updateId) {
        this.updateId = updateId;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public FinPackageStatus getStatus() {
        return status;
    }

    public void setStatus(FinPackageStatus status) {
        this.status = status;
    }

    public FinRuleType getRuleType() {
        return ruleType;
    }

    public void setRuleType(FinRuleType ruleType) {
        this.ruleType = ruleType;
    }

    public FinTaxType getTaxType() {
        return taxType;
    }

    public void setTaxType(FinTaxType taxType) {
        this.taxType = taxType;
    }

    public Boolean getHasCheckVoucher() {
        return hasCheckVoucher;
    }

    public void setHasCheckVoucher(Boolean hasCheckVoucher) {
        this.hasCheckVoucher = hasCheckVoucher;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("startTime", getStartTime())
            .append("name", getName())
            .append("status", getStatus())
            .append("ruleType", getRuleType())
            .append("taxType", getTaxType())
            .append("hasCheckVoucher", getHasCheckVoucher())
            .append("createId", getCreateId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateId", getUpdateId())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
